/**
 * 
 */
package com.ms.game.common.utility;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.TimeZone;

public class xxx {
	/**
	 * 上一次在 console print 文字的時間
	 */
	private static long lastPrintStringTime = 0;

	/**
	 * 將傳入的時間轉成人看得懂的格式
	 * 
	 * @param currentTime
	 *            目前時間 (ms)
	 * @return 格式化的時間字串
	 */
	public static String TimeToString(long currentTime) {
		TimeZone curTimeZone = TimeZone.getDefault();
		GregorianCalendar calendar = new GregorianCalendar(curTimeZone);
		calendar.setTimeInMillis(currentTime);

		DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS");
		return formatter.format(calendar.getTime());
	}

	/**
	 * 將傳入的時間顯示為人看得懂的格式
	 * 
	 * @param currentTime
	 *            目前時間 (ms)
	 */
	public static void ShowTimeAsString(long currentTime) {
		String timeStr = TimeToString(currentTime);
		out(timeStr);
	}

	/**
	 * 簡化版的 system.out.println()
	 * 
	 * @param str
	 *            要輸出到 console 的字串
	 */
	public static void out(String str) {
		long currentTime = System.currentTimeMillis();
		DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
		String timeStr = formatter.format(currentTime);

		if (currentTime - lastPrintStringTime >= 1000) {
			System.out.println("*** ");
		}

		System.out.println("*** [" + timeStr + "] " + str);
		lastPrintStringTime = currentTime;
	}

	/**
	 * 簡化版的 system.out.println()
	 * 有顏色的喔喔喔
	 * @param str
	 *            要輸出到 console 的字串
	 */
	public static void outErr(String str) {
		long currentTime = System.currentTimeMillis();
		DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
		String timeStr = formatter.format(currentTime);

		if (currentTime - lastPrintStringTime >= 1000) {
			System.err.println("*** ");
		}

		System.err.println("*** [" + timeStr + "] " + str);
		lastPrintStringTime = currentTime;
	} 
	
	
	/**
	 * 什麼都沒有，可以拿來當灌水的程式碼下中斷點
	 */
	public static void nothing() {
	}

	/**
	 * 什麼都沒有，可以拿來當灌水的程式碼下中斷點
	 */
	public static void nothing(Object obj) {
	}
}
